Skip to main content

NSDL PAN Direct API

The following document highlights the details of the NSDL PAN Direct API.

API Usage Guidelines

The NSDL PAN Direct API is available exclusively to Regulated Entities (REs) with valid regulatory licenses in India. Data access and processing must remain within your licensed Indian entity, and all data must be stored within Indian geography only. Access from servers located outside India is not permitted.

If you have questions about these requirements or need clarification on your current access, please contact our team at HyperVerge.

API Description

Objective

The NSDL PAN Direct API verifies PAN authenticity and status against official government records.

InputOutput
The user's PAN, full name, father's name, and date of birthThe PAN status, name match verification, date of birth match verification, and seeding status

API URL

https://ind-engine.thomas.hyperverge.co/v1/NSDLPanVerificationDirect

API Endpoint

v1/NSDLPanVerificationDirect

Overview

The NSDL PAN Direct API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format, and you should send all data through a POST request.

Method - POST

Authentication

You need a unique pair of application ID ( appId ) and application key ( appKey ) from HyperVerge to verify your identity for accessing the NSDL PAN Direct API.

Headers

HeaderMandatory / OptionalDescriptionInput Format
content-type MandatoryThis parameter defines the media type for the request payloadapplication/json
appId MandatoryThe application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tabThis should be a unique value
appKey MandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tabThis should be a unique value
transactionIdMandatoryUnique ID for the customer journeyAny defined unique value mapped to a transaction in your business ecosystem

Inputs

The following table provides the details of the parameters required for the NSDL PAN Direct API's request body:

ParameterMandatory / OptionalTypeDescriptionInput FormatDefault Value
panMandatorystringThe unique 10-character alphanumeric Permanent Account Number 'CCCCCDDDDC' format 'C' represents any Latin letters (A to Z), and 'D' represents Arabic numerals (0-9)Not Applicable
nameMandatorystringThe full name as it appears on the PAN cardNot ApplicableNot Applicable
dobMandatorystringThe date of birth of the PAN holderDD/MM/YYYYNot Applicable
fatherNameOptionalstringThe full father's name as it appears on the PAN cardNot ApplicableNot Applicable

Request

The following code snippet demonstrates a standard curl request for the NSDL PAN Direct API:

curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/NSDLPanVerificationDirect' \
--header 'Content-Type: application/json' \
--header 'appid: <Enter_the_appId_Shared_by_HyperVerge>' \
--header 'appkey: <Enter_the_appKey_shared_by_HyperVerge>' \
--header 'transactionId : <Enter_the_Transaction_ID>' \
--data '{
"pan": "<Enter_the_PAN>",
"name": "<Enter_the_Name>",
"fatherName": "<Enter_the_Father_Name>",
"dob": "<Enter_the_DOB>"
}'

Success Response

The following code snippet demonstrates a success response from the NSDL PAN Direct API:

{
"status": "success",
"statusCode": 200,
"result": {
"pan": "<pan>",
"panStatus": "<panStatus>",
"name": "<name>",
"fathername": "<fathername>",
"dob": "<dob>",
"seedingStatus": "<seedingStatus>"
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Success Response Details

The following table outlines the details of the success response from the NSDL PAN Direct API:

ParameterTypeDescription
statusstringThe status of the API response indicating success or failure
statusCodeintegerThe HTTP status code for the response
resultobjectThe JSON object containing the PAN verification details
panstringThe full Permanent Account Number provided in the input and verified against official records
panStatusstringThe status indicating whether the PAN exists and is valid as per the official government database, for example; "Existing and Valid"
namestringThe match status indicating whether the name provided in the request matches the name linked to the PAN
fathernamestringThe match status indicating whether the father's name provided in the request matches the father's name linked to the PAN
dobstringThe match status confirming whether the provided Date of Birth matches the DOB associated with the PAN
seedingStatusstringThe status indicating whether the PAN is currently active and linked to the government systems, for example, Operative PAN
metaDataobjectThe JSON object containing request and transaction identifiers
requestIdstringThe unique identifier for the API request
transactionIdstringThe unique identifier for the customer journey

Failure Response

The following code snippet demonstrates a failure response from the NSDL PAN Direct API:

{
"status": "failure",
"statusCode": 400,
"message": "PAN Number invalid (too long, null, or special characters)"
}

Error Responses

The following are some error responses from the NSDL PAN Direct API:

{
"message": "PAN Number invalid (too long, null, or special characters)",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Date of Birth format is incorrect it should be separated with slash (/) and in format of (DD/MM/YYYY) or Value is Null",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "User validity has expired",
"statusCode": 403,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Error Response Details

A failure or error response contains a failure status with a relevant status code and error message.
The following table lists all error responses:

Status CodeError MessageError DescriptionError Resolution
400PAN Number invalid (too long, null, or special characters)The request contains an invalid PAN number that is either too long, null, or contains special charactersEnsure the PAN number is exactly 10 characters and contains only alphanumeric characters
400User ID does not exist in database, Wrong certificate used, or ID is invalidThe request contains an invalid user ID, wrong certificate, or the ID does not exist in the databaseVerify and provide a valid user ID and certificate
400Incorrect private key or certificate are used for signingThe request uses an incorrect private key or certificate for signingVerify and provide the correct private key and certificate for signing
400Name of PAN holder is invalid (length or special chars)The request contains an invalid name that might contain special charactersEnsure the entered name does not contain special characters
400Father's name is invalid (length or special chars)The request contains an invalid father's name that might contain special charactersEnsure the father's name does not contain special characters
400Date of Birth format is incorrect it should be separated with slash (/) and in format of (DD/MM/YYYY) or Value is NullThe request contains an invalid date of birth format or a null valueEnsure the date of birth is in DD/MM/YYYY format separated with slash (/)
400Transaction ID invalid (too long or null)The request contains an invalid transaction ID that is either too long or nullEnsure the transaction ID is within the allowed length and is not null
401Missing/Invalid credentialsThe request is either missing the mandatory appId and appKey combination or has invalid valuesVerify and provide valid appId and appKey credentials
401Authentication FailureThe request contains an invalid certificate for authenticationVerify and provide a valid certificate for authentication
403User not authorizedThe user ID is not registered with ProteanContact the HyperVerge team to register the user ID with Protean
403User validity has expiredThe validity period for the user ID has expiredContact the HyperVerge team to renew the user ID validity
403Certificate Revocation List issued by Certifying Authorities is expiredThe certificate revocation list has expiredContact the HyperVerge team to update the certificate revocation list
403User ID DeactivatedThe user ID has been deactivatedContact the HyperVerge team to reactivate the user ID
409Duplicate Transaction ID enteredThe request uses a transaction ID that has already been used for another requestEnsure each request uses a unique transaction ID
500System ErrorThe request encountered an internal system error at ProteanRetry the request after some time or contact the HyperVerge team if the issue persists
500System Failure or common error message for requestThe request encountered a system failure or a common errorRetry the request after some time or contact the HyperVerge team if the issue persists
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: